import ChapterSelector from "@/components/manga/chapters";
import HamburgerMenu from "@/components/manga/mobile/hamburgerMenu";
import TopSection from "@/components/manga/info/topSection";
import Footer from "@/components/shared/footer";
import Head from "next/head";
import { useEffect, useState } from "react";
import { setCookie } from "nookies";
import { getServerSession } from "next-auth";
import { authOptions } from "../../api/auth/[...nextauth]";
import getAnifyInfo from "@/lib/anify/info";
import { NewNavbar } from "@/components/shared/NavBar";
export default function Manga({ info, userManga }) {
const [domainUrl, setDomainUrl] = useState("");
const [firstEp, setFirstEp] = useState();
const chaptersData = info.chapters.data;
useEffect(() => {
setDomainUrl(window.location.origin);
}, []);
return (
<>
{info
? `Manga - ${
info.title.romaji || info.title.english || info.title.native
}`
: "Getting Info..."}
{chaptersData.length > 0 ? (
) : (
No Chapter Available :(
)}
>
);
}
export async function getServerSideProps(context) {
const session = await getServerSession(context.req, context.res, authOptions);
const accessToken = session?.user?.token || null;
const { id } = context.query;
const key = process.env.API_KEY;
const data = await getAnifyInfo(id, key);
let userManga = null;
if (session) {
const response = await fetch("https://graphql.anilist.co/", {
method: "POST",
headers: {
"Content-Type": "application/json",
...(accessToken && { Authorization: `Bearer ${accessToken}` }),
},
body: JSON.stringify({
query: `
query ($id: Int) {
Media (id: $id) {
mediaListEntry {
status
progress
progressVolumes
status
}
id
idMal
title {
romaji
english
native
}
}
}
`,
variables: {
id: parseInt(id),
},
}),
});
const data = await response.json();
const user = data?.data?.Media?.mediaListEntry;
if (user) {
userManga = user;
}
}
if (!data?.chapters) {
return {
notFound: true,
};
}
return {
props: {
info: data,
userManga,
},
};
}